package com.kly.springbootinit.model.enums;

import lombok.Getter;

/**
 * 订单状态枚举类
 * @author YourName
 */
@Getter
public enum OrderStatusEnum {
    /**
     * 待付款
     */
    UNPAID(0, "待付款"),
    /**
     * 已付款
     */
    PAID(1, "已付款"),
    /**
     * 已取消
     */
    CANCELED(2, "已取消"),

    /**
     * 进行中
     */
    PROCESSING(3, "进行中"),
    /**
     * 已完成
     */
    FINISHED(4, "已完成"),

    /**
     * 已删除
     */
    DELETED(5, "已删除");




    private final Integer code;
    private final String message;

    OrderStatusEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 根据 code 获取对应的枚举值
     *
     * @param code 状态码
     * @return 对应的枚举
     * @throws IllegalArgumentException 如果找不到对应的枚举值
     */
    public static OrderStatusEnum valueOfCode(Integer code) {
        return java.util.Arrays.stream(values())
                .filter(e -> e.code.equals(code))
                .findFirst()
                .orElseThrow(() -> new IllegalArgumentException("无效的订单状态码: " + code));
    }
}